package com.tpl.core.basedata.dao;


import com.tpl.core.common.annotation.DaoAnnotation;
import com.tpl.core.entity.sys.Menu;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 说明 :菜单数据访问层接口
 * @author <a href="mailto:3380084@gmail.com">张坤雷</a>
 * @version 创建时间：2013-7-3 下午2:55:07 
 *
 */
@DaoAnnotation
public interface MenuDao {
	List<Menu> getMenu(Long roleId);
	/**
	 * 
	 * 说明 :获取子菜单信息
	 */
	List<Menu> getMenusByParentId(Long parentId);
	/**
	 * 
	 * 说明 :验证菜单编码
	 */
	int checkMenuNo(@Param("menuNo")String menuNo,@Param("id")Long id);
	/**
	 * 
	 * 说明 :新增菜单
	 */
	void insertMenu(Menu menu);
	/**
	 * 
	 * 说明 :更新菜单
	 */
	void updateMenu(Menu menu);
	/**
	 * 
	 * 说明 :删除菜单
	 */
	void deleteMenu(Long id);
	/**
	 * 
	 * 说明 :获取菜单全称
	 */
	List<Menu> getMenuFullName(Long id);
	
	/**
	 * 
	 * 说明 :根据类型获取所有菜单
	 */
	List<Menu> getMenusByType(Long type);

	/**
	 * 根据菜单编码获取菜单
	 * @param menuNo
	 * @return
	 */
	Menu getMenuByMenuNo(String menuNo);
}
